﻿// Sheego.Service.X400
// Copyright(C) 2015 Schwab Versand GmbH
//
// This source file is subject to the Microsoft Public License(Ms-PL).
// http://www.opensource.org/licenses/ms-pl.html
// All other rights reserved.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sheego.Service.X400.Scheduler.Shared
{
    public interface IJob
    {
        /// <summary>
        /// Name des Jobs
        /// </summary>
        String Name { get; }

        /// <summary>
        /// Ist der Job aktiv
        /// </summary>
        Boolean Disabled { get; set; }

        /// <summary>
        /// Prüft ob der Job für die angegeben Uhrzeit laufen soll
        /// </summary>
        /// <param name="hour">Stunde</param>
        /// <param name="min">Minute</param>
        /// <returns>true wenn der Job laufen soll</returns>
        Boolean Match(int hour, int min);

        /// <summary>
        /// Führt den Job aus, alle Exceptions und alle harten Fehler führen zur Deaktivierung des Jobs
        /// </summary>
        /// <returns>0 bei Erfolg, < 0 bei weichen Fehler, > 0 bei harten Fehlern</returns>
        int Exec();

    }
}
